package com.zoweunion.mechanic.service.iot;



import com.zoweunion.mechanic.model.User;
import com.zoweunion.mechanic.util.MyException;

import java.util.List;
import java.util.Map;

public interface AppManagementService {


    /**
     * 轮播图设置_列表显示
     *
     * @param reqMap
     * @return
     * @throws MyException
     */
    Map<String, Object> pictureList(User user, Map<String, Object> reqMap) throws MyException;


    /**
     * 轮播图设置_详情列表显示
     *
     * @param reqMap
     * @return
     */
    Map<String, Object> pictureDetailList(User user, Map<String, Object> reqMap) throws MyException;


    /**
     * 轮播图设置_新增轮播图
     *
     * @param reqMap
     * @return
     */
    List<Map<String, Object>> getInnerHrefPath(Map<String, Object> reqMap, User currentUser) throws MyException;


    /**
     * 轮播图设置_获取服务商和游客列表
     *
     * @param reqMap
     * @return
     */
    List<Map<String, Object>> serverAndTourist(User user, Map<String, Object> reqMap) throws MyException;

    /**
     * 轮播图设置_新增轮播图
     *
     * @param reqMap
     * @return
     */
    int insertPicture(Map<String, Object> reqMap, User currentUser) throws MyException;

    /**
     * 轮播图设置_删除轮播图
     *
     * @param reqMap
     * @return
     */
    int deletePicture(Map<String, Object> reqMap) throws MyException;

    /**
     * 轮播图设置_修改轮播图
     *
     * @param reqMap
     * @return
     */
    int updatePicture(Map<String, Object> reqMap, User currentUser) throws MyException;

    /**
     * 根据主机厂、子服务商或服务商的主键ID(s_id)获取子服务商的列表或自身服务商的信息(用于轮播图功能页面)
     * @param paraMap
     * @return
     */
    List<Map<String, Object>> getSeverListForRotationChart(Map<String, Object> paraMap);

    /**
     * 根据主机厂、子服务商或服务商的主键ID(s_id)获取轮播的列表信息
     * @param paraMap
     * @return
     */
    List<Map<String, Object>> getRotationChartDataList(Map<String, Object> paraMap);

    List<Map<String, Object>> getRotationChartDataListForServer(Map<String, Object> paraMap);

    Map<String, Object> getRotationChartSettingForServer(Map<String, Object> paraMap);

    /**
     * 根基sid获取主机厂(父类)的轮播图的配置
     * @param paraMap
     * @return
     */
    Map<String, Object> getRotationChartSettingForParentServer(Map<String, Object> paraMap);

    /**
     * 根据主机厂的主键ID更新子服务商的picture_num
     * @param paraMap
     * @return
     */
    boolean updateChildrenServerPictureNumByPId(Map<String, Object> paraMap);

    boolean updatePictureDetail(Map<String, Object> paraMap);

    boolean addPictureDetail(Map<String, Object> paraMap);
}
